const express = require("express");
router = express.Router();
const multer = require('multer') // 引入 multer模块
const fs = require('fs')
const upload = multer({
  dest: 'uploads/'
}) // 配置图片文件的路径(没有后缀名)

router.post('/addImg', upload.single('file'), (req, res, next) => {

  // 获取到file的信息 ---> 只能通过req.file
  let fileObj = req.file

  // 获取到body中userId信息
  let {
    userId
  } = req.body

  // 分割出type 
  let originalArr = fileObj.originalname.split('.')
  // 获取到type ( jpg/png/gif )
  let type = originalArr[originalArr.length - 1]

  // 读取文件 ( path, 'utf-8'(这里不写解码类型,直接把回调函数中的data写入新文件即可), callback)
  fs.readFile('uploads/' + fileObj.filename, (err, data) => {
    if (err) throw err

    // 创建复制图片的路径 以及 拼接type形成一个完整的图片文件
    let newPath = '/img/headerImg/' + fileObj.filename + "." + type

    // 写入复制的图片 (path, data, callback)
    fs.writeFile('public' + newPath, data, (err) => { // 把读取到的data写入
      if (err) throw err

      // 删除原uploads路径下的图片
      fs.unlink('uploads/' + fileObj.filename, () => {
        res.send({
          code: '200',
          msg: '上传成功',
          newPath: 'http://localhost:5000/public' + newPath
        })
      })
    })
  })
})

module.exports = router;